--- ./gtk/gtkmessagedialog.c.orig	2014-05-07 23:40:39.000000000 +0000
+++ ./gtk/gtkmessagedialog.c	2014-07-20 15:17:24.000000000 +0000
@@ -104,6 +104,9 @@
   GtkWidget     *label;
   GtkWidget     *message_area; /* vbox for the primary and secondary labels, and any extra content from the caller */
   GtkWidget     *secondary_label;
+  GtkWidget     *icon;
+  GtkWidget     *box;
+  GtkWidget     *vbox;
 
   guint          has_primary_markup : 1;
   guint          has_secondary_text : 1;
@@ -298,6 +301,9 @@
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/ui/gtkmessagedialog.ui");
   gtk_widget_class_bind_template_child_private (widget_class, GtkMessageDialog, label);
   gtk_widget_class_bind_template_child_private (widget_class, GtkMessageDialog, secondary_label);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkMessageDialog, image);
+  gtk_widget_class_bind_template_child_private (widget_class, GtkMessageDialog, box);
+  gtk_widget_class_bind_template_child_full (widget_class, "dialog-vbox1", FALSE, G_PRIVATE_OFFSET (GtkMessageDialog, vbox));
   gtk_widget_class_bind_template_child_internal_private (widget_class, GtkMessageDialog, message_area);
 }
 
@@ -320,7 +326,27 @@
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
 G_GNUC_END_IGNORE_DEPRECATIONS
-  gtk_button_box_set_layout (GTK_BUTTON_BOX (action_area), GTK_BUTTONBOX_EXPAND);
+
+  if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0)
+    {
+      gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+
+      gtk_box_set_spacing (GTK_BOX (priv->vbox), 6);
+
+      gtk_container_set_border_width (GTK_CONTAINER (priv->box), 0);
+      gtk_box_set_spacing (GTK_BOX (priv->box), 12);
+      gtk_widget_set_margin_start (priv->box, 12);
+      gtk_widget_set_margin_end (priv->box, 12);
+
+      gtk_widget_set_halign (priv->label, GTK_ALIGN_START);
+      gtk_misc_set_alignment (GTK_MISC (priv->label), 0, 0);
+      gtk_widget_set_margin_top (priv->label, 0);
+
+      gtk_widget_set_halign (priv->secondary_label, GTK_ALIGN_START);
+      gtk_misc_set_alignment (GTK_MISC (priv->secondary_label), 0, 0);
+    }
+  else
+    gtk_button_box_set_layout (GTK_BUTTON_BOX (action_area), GTK_BUTTONBOX_EXPAND);
 }
 
 static void
@@ -360,6 +386,7 @@
 {
   GtkMessageDialogPrivate *priv = dialog->priv;
   const gchar *name = NULL;
+  const gchar *icon_name = NULL;
   AtkObject *atk_obj;
 
   priv->message_type = type;
@@ -368,18 +395,22 @@
     {
     case GTK_MESSAGE_INFO:
       name = _("Information");
+      icon_name = "dialog-information-symbolic";
       break;
 
     case GTK_MESSAGE_QUESTION:
       name = _("Question");
+      icon_name = "dialog-question-symbolic";
       break;
 
     case GTK_MESSAGE_WARNING:
       name = _("Warning");
+      icon_name = "dialog-warning-symbolic";
       break;
 
     case GTK_MESSAGE_ERROR:
       name = _("Error");
+      icon_name = "dialog-error-symbolic";
       break;
 
     case GTK_MESSAGE_OTHER:
@@ -397,6 +428,9 @@
       if (name)
         atk_object_set_name (atk_obj, name);
     }
+
+  if (icon_name)
+    gtk_image_set_from_icon_name (GTK_IMAGE (priv->image), icon_name, GTK_ICON_SIZE_DIALOG);
 }
 
 static void 
